package personal.service.accounting;

import java.util.List;

import personal.domain.accounting.IncomeExpenseCategory;
import personal.domain.accounting.MonthlyCategoryTotal;


public interface IncomeExpenseService {
	/**
	 * Returns all income expense categories from database.
	 * @return List<IncomeExpenseCategory>. List of income expense categories
	 */
	public List<IncomeExpenseCategory> getAllIncomeExpenseCategories();
	/**
	 * Finds monthly category totals across all categories for a given year.
	 * @param year
	 * @return List<MonthlyCategoryTotal>
	 */
	public List<MonthlyCategoryTotal> getMonthlyCategoryTotalsForYear(Long year);
	/**
	 * Saves (insert or update) an income expense category.
	 * @param ieCategory. IncomeExpenseCategory to be saved.
	 * @return IncomeExpenseCategory with generated category id (for insert).
	 */
	public IncomeExpenseCategory saveIncomeExpenseCategory(IncomeExpenseCategory category);
}
